Skip to content

chore: sync upstream through cc0438d - #195

Merged
krukow merged 4 commits into
mainfrom
krukow-sync-upstream-sdk-7a2
Aug 22, 2026
Merged

chore: sync upstream through cc0438d#195
krukow merged 4 commits into
mainfrom
krukow-sync-upstream-sdk-7a2

Conversation

@krukow

@krukow krukow commented Aug 22, 2026

Copy link
Copy Markdown
Collaborator

Generated via Copilot on behalf of @krukow

Syncs the Clojure SDK through upstream commit cc0438d66e3e68c333537cb935d9425d4e4ed8d5. The stable public API remains unchanged; this ports the Node runtime compatibility behavior from github/copilot-sdk#2367 and advances the runtime schema pin to 1.0.81-6.

Implementation notes

  • Resume and join paths send mcpServers exclusively with session.resume; omitted input remains absent and an explicit empty map remains an empty wire object. No session.mcp.reloadWithConfig follow-up is issued.
  • Generated account-login and permission-source changes remain wire-only rather than expanding the stable Clojure API.
  • Exact-pin certification stays hermetic in normal CI. COPILOT_UPSTREAM_VALIDATION=true additionally verifies the committed inventory and source symbols against the resolved local upstream checkout.
  • The manual pending-tool resume example limits availability to its declaration-only custom tool so host MCP configuration cannot consume its prompt budget.

This intentionally does not change the SDK version or publish a release.

krukow and others added 3 commits August 23, 2026 01:36
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI lite review requested due to automatic review settings August 22, 2026 23:37

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Ports an upstream compatibility adjustment through cc0438d while keeping the stable Clojure public API unchanged. The main functional change is to apply MCP server configuration during session.resume (no follow-up session.mcp.reloadWithConfig), along with advancing the pinned runtime schema to 1.0.81-6 and refreshing the exact-pin certification evidence/tests.

Changes:

  • Removed session.mcp.reloadWithConfig from resume/join flows; MCP config is now sent only as mcpServers on session.resume.
  • Bumped the runtime schema pin to 1.0.81-6 and updated schema/docs/changelog accordingly.
  • Added a new stable-sync certification report + test for the cc0438d pin, keeping optional upstream validation gated by COPILOT_UPSTREAM_VALIDATION=true.
Show a summary per file
File Description
test/resources/stable_upstream_delta_cc0438d.edn New exact-pin delta/evidence report for upstream cc0438d.
test/github/copilot_sdk/integration/tools_config_test.clj Updates integration assertions to ensure no reload RPC is sent and MCP config is embedded in session.resume.
test/github/copilot_sdk/integration/stable_sync_ea41d_test.clj Relaxes prior pin assertions now superseded by the new certification test.
test/github/copilot_sdk/integration/stable_sync_cc0438d_test.clj New certification test validating the cc0438d evidence and schema pin (optionally against a resolved upstream checkout).
src/github/copilot_sdk/client.clj Removes resume-time reload logic and related timeout helpers; resume applies MCP config directly.
src/github/copilot_sdk.clj Updates public docs for resume-session MCP behavior to match the new wire contract.
schemas/README.md Updates the documented pinned schema version to 1.0.81-6.
schemas/api.schema.json Updates schema content for account.login + permission source enums per new pin.
examples/manual_tool_resume.clj Restricts tool availability to the example’s custom tool (avoids host MCP tool prompt-budget interference).
doc/reference/API.md Updates resume-session docs to describe resume-only MCP configuration semantics (omit vs empty map).
doc/mcp/overview.md Updates MCP docs to “Resume-Time Configuration” semantics (no reload RPC).
doc/api/overview.html Regenerated API docs reflecting updated MCP resume behavior.
doc/api/github.copilot-sdk.html Regenerated API docs reflecting updated resume-session docstring.
doc/api/github.copilot-sdk.client.html Regenerated API docs reflecting updated resume-session option description.
doc/api/API.html Regenerated API reference reflecting updated resume MCP semantics.
CHANGELOG.md Updates Unreleased entries for the new upstream commit and schema pin; notes MCP resume behavior change and example fix.
.github/skills/update-upstream/SKILL.md Documents the optional COPILOT_UPSTREAM_VALIDATION=true bb test gate for exact-pin validation.
.copilot-schema-version Bumps runtime schema pin to 1.0.81-6.

Review details

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

  • Files reviewed: 18/18 changed files
  • Comments generated: 1
  • Review effort level: Lite

Comment thread test/github/copilot_sdk/integration/tools_config_test.clj
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings August 22, 2026 23:44

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review details

Suppressed comments (2)

Previously missed (2) — in code that hasn't changed since the last review.

test/github/copilot_sdk/integration/tools_config_test.clj:118

  • The test derives resume-request with some, but if the hook never observes a session.resume call the failure will show up later as a confusing map mismatch. Add an explicit assertion that the resume request was captured, and bind the params directly to avoid (second resume-request) indirection.
        resume-request (some #(when (= "session.resume" (first %)) %) @requests)
        reloads (filter #(= "session.mcp.reloadWithConfig" (first %)) @requests)]
    (is (not (instance? Throwable result)))
    (is (= {:sessionId session-id
            :mcpServers
            {:srv {:type "http"
                   :url "https://mcp.async.test"
                   :tools ["*"]}}}
           (select-keys (second resume-request) [:sessionId :mcpServers])))

test/github/copilot_sdk/integration/stable_sync_cc0438d_test.clj:108

  • This test parses schemas/api.schema.json via (slurp ...) + json/read-str, which reads the entire (large) schema into a string before parsing. Using json/read on an io/reader avoids the extra copy and reduces peak memory during test runs.
  (let [{:keys [schema version]} (read-report)
        api-schema (json/read-str (slurp "schemas/api.schema.json"))
        definitions (get api-schema "definitions")
  • Files reviewed: 18/18 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

@krukow
krukow merged commit b6b699b into main Aug 22, 2026
3 checks passed
@krukow
krukow deleted the krukow-sync-upstream-sdk-7a2 branch August 22, 2026 23:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants